/*
Copyright (c) 2025 HeZongLun
NahidaProject is licensed under Mulan PSL v2.
You can use this software according to the terms and conditions of the Mulan
PSL v2.
You may obtain a copy of Mulan PSL v2 at:
		 http://license.coscl.org.cn/MulanPSL2
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
See the Mulan PSL v2 for more details.
*/

#ifndef TERMINALCOLOR_H
#define TERMINALCOLOR_H
#pragma once

#include <iostream>
#include <Windows.h>

namespace NahidaProject {
	class __declspec(dllexport) TerminalColor {
	public:
		static std::ostream& Reset(std::ostream& os);
		static std::ostream& Red(std::ostream& os);
		static std::ostream& Orange(std::ostream& os);
		static std::ostream& Yellow(std::ostream& os);
		static std::ostream& Green(std::ostream& os);
		static std::ostream& Cyan(std::ostream& os);
		static std::ostream& Blue(std::ostream& os);
		static std::ostream& Purple(std::ostream& os);

		static std::ostream& BackgroundRed(std::ostream& os);
		static std::ostream& BackgroundOrange(std::ostream& os);
		static std::ostream& BackgroundYellow(std::ostream& os);
		static std::ostream& BackgroundGreen(std::ostream& os);
		static std::ostream& BackgroundCyan(std::ostream& os);
		static std::ostream& BackgroundBlue(std::ostream& os);
		static std::ostream& BackgroundPurple(std::ostream& os);
	};
}

#endif